#ifndef XM_CHANNEL_HH
#define XM_CHANNEL_HH

#include <functional>
#include <memory>

#include "XM_noncopyable.hh"
#include "XM_Timestamp.hh"
#include "pch.hh"

XM_NAMESPACE_BEGIN

struct EvLoop;

struct Channel : private XM_noncopyable
{
    using EventCallback = std::function<void()>;
    using ReadEventCallback = std::function<void(XM_Timestamp)>;

    Channel(EvLoop* elop, int fd);
    ~Channel();

    void fixEvent(XM_Timestamp receiveTime);

    void setReadCallback(ReadEventCallback cb)
    {
        
    }

private:

};

XM_NAMESPACE_END

#endif // header file protect